package com.foreknow.controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
   * 什么是Servlet:这就是一个服务器端的应用程序
   * 作用：
   * 1.可以读取客户端发送的所有的数据
   * 2.可以获取请求的参数
   * 3.可以处理数据并成生结果
   * 4.也可以设置合适的http响应参数
   * 5.也可以将响应的信息发送给客户端
   *
   * 如何创建一个Servlet
   * 1.要想创建一个Servlet，那么就一定要继承HttpServlet
   * 2.要重写doGet或doPost方法
 *      这两个方法什么时候会调用：如果客户端向服务器端发送的请求为get请求，那么就会自动去调用Servlet中的doGet方法
 *                           如果客户端向服务器端发送的请求为post请求，那么就会自动去调用Servlet中的doPost方法
 *
 *   3.方法的参数
 *   http会支持多种请求的方式：
 *    GET（SELECT）：从服务器取出资源（一项或多项）。
 *    POST（CREATE）：在服务器新建一个资源。
 *    PUT（UPDATE）：在服务器更新资源（客户端提供改变后的完整资源）。
 *    DELETE（DELETE）：从服务器删除资源。
 *
 *    HttpServletRequest 接口:这个接口无需我们自己初始化，它是由tomcat服务器(Web容器)会自动进行初始化的
 *    会提供一些常用的方法:如何获取请求的参数
 *
 *    HttpServletResponse接口:这个接口无需我们自己初始化，它是由tomcat服务器(Web容器)会自动进行初始化的
 *    例如：在服务器端设置响应的内容的类型
   */
  public class ServletDemo extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //设置服务器端向客户端响应的内容的类型(MIME)
    //resp.setContentType("text/html;charset=utf-8");
    //要使用这个对象PrintWriter中的方法在页面中输出内容
    PrintWriter out = resp.getWriter();
    out.println("<html>");
    out.println("<head>");
    out.println("<title>servlet</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1>这是一个测试程序servlet</h1>");
    out.println("</body>");
    out.println("</html>");
    out.flush();
    out.close();
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

  }
}
